#include "gpio.h"
#include "IP_GPIO.h"




#define GPIO_NoUSE(GPIOx,PinNum) oIP_GPIO_Config(GPIOx,PinNum,vIP_GPIO_Mode_AN,vIP_GPIO_OutType_PP,vIP_GPIO_Speed_LOW,vIP_GPIO_PuPd_NP);




void MX_GPIO_Init(void)
{

  //GPIO_InitTypeDef GPIO_InitStruct = {0};

  RCC->AHB4ENR|=RCC_AHB4ENR_GPIOHEN;

  RCC->AHB4ENR|=RCC_AHB4ENR_GPIOAEN|RCC_AHB4ENR_GPIOBEN|RCC_AHB4ENR_GPIOEEN;


  //Button

  oIP_GPIO_Config(GPIOA,0,vIP_GPIO_Mode_IN,vIP_GPIO_OutType_PP,vIP_GPIO_Speed_LOW,vIP_GPIO_PuPd_PU);
  oIP_GPIO_Config(GPIOA,1,vIP_GPIO_Mode_IN,vIP_GPIO_OutType_PP,vIP_GPIO_Speed_LOW,vIP_GPIO_PuPd_PU);
  oIP_GPIO_Config(GPIOA,2,vIP_GPIO_Mode_IN,vIP_GPIO_OutType_PP,vIP_GPIO_Speed_LOW,vIP_GPIO_PuPd_PU);
  oIP_GPIO_Config(GPIOA,3,vIP_GPIO_Mode_IN,vIP_GPIO_OutType_PP,vIP_GPIO_Speed_LOW,vIP_GPIO_PuPd_PU);


  //ESP8266

  // oIP_GPIO_Config(GPIOB,0,vIP_GPIO_Mode_IN,vIP_GPIO_OutType_PP,vIP_GPIO_Speed_LOW,vIP_GPIO_PuPd_PU);//IO4
  // oIP_GPIO_Config(GPIOB,1,vIP_GPIO_Mode_IN,vIP_GPIO_OutType_PP,vIP_GPIO_Speed_LOW,vIP_GPIO_PuPd_PU);//IO5
  // oIP_GPIO_Config(GPIOE,11,vIP_GPIO_Mode_OUT,vIP_GPIO_OutType_PP,vIP_GPIO_Speed_LOW,vIP_GPIO_PuPd_NP);//CS
  // oIP_GPIO_Config(GPIOE,15,vIP_GPIO_Mode_OUT,vIP_GPIO_OutType_OD,vIP_GPIO_Speed_LOW,vIP_GPIO_PuPd_PU);//RST
  

  //LCD ST7789
  oIP_GPIO_Config(GPIOD,6,vIP_GPIO_Mode_OUT,vIP_GPIO_OutType_PP,vIP_GPIO_Speed_LOW,vIP_GPIO_PuPd_NP);//RES
  oIP_GPIO_Config(GPIOD,5,vIP_GPIO_Mode_OUT,vIP_GPIO_OutType_PP,vIP_GPIO_Speed_HIGH,vIP_GPIO_PuPd_NP);//DC
  oIP_GPIO_Config(GPIOA,15,vIP_GPIO_Mode_OUT,vIP_GPIO_OutType_PP,vIP_GPIO_Speed_MEDIUM,vIP_GPIO_PuPd_NP);//CS


  //外部中断配置

  // RCC->APB4ENR|=RCC_APB4ENR_SYSCFGEN;

  // SYSCFG->EXTICR[1-1]=SYSCFG_EXTICR1_EXTI0_PB;
  // EXTI->RTSR1|=(0x1U<<0);//使能对应位的上升沿
  // EXTI->FTSR1|=(0x1U<<0);//使能对应位的下降沿
  // EXTI->IMR1|=(0x1U<<0);//使能对应位的中断
  // HAL_NVIC_SetPriority(EXTI0_IRQn,7,0);

}
